Search Results: "daniels"

24 October 2007

Daniel Stone: you can't hide from the truth

Dear Zeeshan,

yep, that's zeeshan

Ahem.

8 October 2007

Daniel Stone: painfully true

< eikke> is there any "small" thing which I could be able to do, now?
< eikke> if possible wihtout breaking my hardware as there's no major company behind my back :p
< marcheu> eikke: the most likely way your hardware breaks when doing driver stuff is because you throw it out of the window

18 September 2007

Daniel Stone: git and changelogs

Every time I see a post about changelogs (sorry Behdad, nothing personal), I die a little bit inside.

There are three problems here:

12 September 2007

Daniel Stone: concrete

Matthew Tippett just threw a CD full of AMD/ATI specs to Dave Airlie, approved for public release with no NDA. I'm now holding one of those CDs as well. Thanks, AMD.

In the past five hours, we've pushed 72,000 PDFs, for a total of around 1TB. This ... turns out to actually push the limits of our new fd.o setup.

10 September 2007

Daniel Stone: amd rejoins the open source fold

I'm sitting here at XDS, and John Bridgman and Matthew Tippett are announcing AMD's open source plans. In three words: 'specifications without NDA'. 2D very soon, 3D coming when the legal issues have been taken care of. Specs for the r3xx core will probably be coming later on down the track.

I don't need to say how awesome this is.

1 September 2007

Daniel Stone: woo firefox

6124 daniels 15 0 2109m 1.5g 18m R 1 75.4 426:30.01 firefox-bin
3000000 1486 74 1 5808 962 1427069K 60K 1427129K 6124 Django Model reference Django Documentation - Mozilla


I honestly don't understand how Firefox could consume 1.5GB of RAM, as well as 1.4GB of pixmap storage in the X server. This is a new record. (And the pixmap storage rose to 1.7GB before I killed it.)

12 March 2007

Daniel Stone: valgrinding x

Have been feeling rather unwell for the past couple of days, so I decided, while I feel like death warmed up, how could hacking at Valgrind possibly make it worse?

I took Tilman Sauerbeck's extended version of Dave Airlie's valgrind-mmt, and cleaned up a couple of minor bits -- changed the offset to be specified in hex, added support for repetitions (e.g. 'repeated 255 times', instead of the same line 256 times over), and also added support for the in*/out* family on AMD64, which was quite entertaining as I've not really touched either assembly or Valgrind before. Got it working in the end, despite libVEX's best efforts to frustrate me, and ended up feeling slightly better as well. Huzzah.

Anyway, 'sudo valgrind --tool=mmt --offset=0xc1000000[0] /usr/bin/Xorg :0 -ac > x.log 2>&1' will trap all MMIO accesses made by X or its VBIOS, provided you run the BIOS through x86emu instead of lrmi.

Postscript: spent a few minutes after writing this trying to figure out if there was anything I should've said, and didn't. Now, hours later, I realise there was one minor detail omitted: the URL. gitweb is just there, and the anonymous clone URL is git://people.freedesktop.org/~daniels/valgrind.

[0]: Get the base address with lspci -v. Your video card should have two PCI regions, of which one is big (your main video memory), and the other one is 32 or 64kB (the MMIO space, i.e. the bit you want).

2 November 2006

Daniel Stone: automake beautification

(Please note, I didn't write this: I just fixed a couple of bugs and put it in a patch. All credit to the original author, Tommie Gannert.)

Tired of the sucktitude of automake command lines? Find it incredible that people could seriously claim to prefer command output so verbose that you actually miss all the warnings?

if /bin/bash ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../GL/mesa/swrast -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I/home/daniels/x/mesa/Mesa/include -I../X -I../array_cache -I../glapi -I../main -I../math -I../shader -I../shader/slang -I../shader/slang -I../swrast -I../swrast_setup -I../tnl -I.. -I../../../../hw/xfree86/os-support -DHAVE_DIX_CONFIG_H -DXFree86Server -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I../../../../include -I../../../include -I../../../../Xext -I../../../../composite -I../../../../damageext -I../../../../xfixes -I../../../../Xi -I../../../../mi -I../../../../miext/shadow -I../../../../miext/damage -I../../../../render -I../../../../randr -I../../../../fb -g -O2 -MT s_masking.lo -MD -MP -MF ".deps/s_masking.Tpo" -c -o s_masking.lo s_masking.c; \
then mv -f ".deps/s_masking.Tpo" ".deps/s_masking.Plo"; else rm -f ".deps/s_masking.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I../../../../GL/mesa/swrast -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I../../../include -I/home/daniels/x/mesa/Mesa/include -I../X -I../array_cache -I../glapi -I../main -I../math -I../shader -I../shader/slang -I../shader/slang -I../swrast -I../swrast_setup -I../tnl -I.. -I../../../../hw/xfree86/os-support -DHAVE_DIX_CONFIG_H -DXFree86Server -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I../../../../include -I../../../include -I../../../../Xext -I../../../../composite -I../../../../damageext -I../../../../xfixes -I../../../../Xi -I../../../../mi -I../../../../miext/shadow -I../../../../miext/damage -I../../../../render -I../../../../randr -I../../../../fb -g -O2 -MT s_masking.lo -MD -MP -MF .deps/s_masking.Tpo -c s_masking.c -fPIC -DPIC -o .libs/s_masking.o


Prettify Automake finally fixes this. I've put up a deb that at least works on Edgy (but has some pretty shady changes; getting it to build was, um, interesting) here; re-autoreconf with that, then run configure with --enable-pretty-cmds to get much more sensible output:

  [C ] fbbits.c
  [C ] fbblt.c
  [C ] fbbltone.c
../../fb/fbbltone.c: In function "fbBltOne":
../../fb/fbbltone.c:354: warning: left-hand operand of comma expression has no effect
  [C ] fbbstore.c


Warnings! Visible! Amazing!

Daniel Stone: input hotplug merged to master

So, I finally merged the input-hotplug branches on master. Basically, this means that instead of attempting to hide behind one device (/dev/input/mice, the console keyboard), and hacking around it with gash and tape when we actually expose multiple devices[0], we finally expose multiple devices in a useful way. This is consistent through out the Xorg and KDrive servers; Xnest and Xvfb also have support, but that's not the most useful thing ever.

This required a huge overhaul of the old input code, much of which dates back to the mid-80s; the bits that don't were sticky-taped on the side, working more in spite of our core input code than with it. So, in addition to being generally useful and providing things like multiple keymaps on different keyboards and different acceleration (and so) on different pointer devices, it also actually caused a net removal of code.

So, once you've set yourself using evdev for the drivers, you can also now dynamically add and remove devices. Last night, not long before I released all the components, I removed all the input devices from my configuration file, told X not to add any, and added 'respeclaration --daemon' to my session: completely dynamic input. I've been using the core bits (the whole input API rework) for quite a long time, along with Zepheniah's evdev driver, but this is the first time I've been using a session with completely hotplugged input, as opposed to adding and removing devices every now and then to test the hotplug capabilities, which was actually a piece of cake, compared to reworking all our core input code to deal with devices appearing and disappearing.

Still, this all needs good desktop integration. Keyboard and mouse applets need to become aware of multiple devices[1], and allow people to configure them separately. The desktop should also take over the role currently filled by respeclaration, which works perfectly well, but shouldn't be generally deployed; management of input devices thus turns into a session management issue, which leaves the desktop to dictate policy.

There are still some nits in the D-BUS policy to sort out (right now, only root can reconfigure the devices), but I believe it's fundamentally the right model: it's machine-oriented, rather than session-oriented. There are still some minor changes that need to be made, but working out who should be trusted to add input devices was more or less impossible in the X security model.

xserver 1.3 (for Xorg 7.3) should be good fun.

[0]: Key presses/releases from your second device will just magically appear from your first device. Useful, huh?
[1]: In brief: check for inputproto 1.4 at build time, check DEVICE_CORE on whatever appears as the core pointer, and if 'iscore' is 1, then you have a virtual core pointer. Anything that sets status to 1 for DEVICE_CORE will also generate core events. Setting controls on the core keyboard or pointer will propagate those changes down to all the devices which also send core events. I'm going to document this soon.

8 March 2006

Jonathan McDowell: All the people.

Last night I dreamt I went drinking in the Reindeer with Phil Daniels.

29 December 2005

Daniel Stone: [tech/x] not to be left out

Since all the cool kids are doing it:
daniels@ephemera:~/x/xorg/xserver% diff -urN xorg ,.xkb /xkb diffstat tail -1
 27 files changed, 1437 insertions(+), 7439 deletions(-)


Hacking on XKB as recreation. Whoohoo.

(Oh yeah, and that removal of 6000 lines of code actually adds some really cool new features to the server, including some which make it significantly more complex -- XML parsing, i18n, you name it. How's that?)

Next.

Previous.